package com.xjy.system.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;

import io.swagger.annotations.ApiModelProperty;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 合同基本信息对象 sys_contract
 *
 * @author xjy
 * @date 2022-02-08
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("sys_contract")
@Entity
@SQLDelete(sql = "update sys_contract set del_flag=1 where id=?")
@Where(clause = "del_flag=0")
public class SysContract implements Serializable {

    private static final long serialVersionUID=1L;

	/** 合同id */
	@TableId(value = "id")
	@Id
	private Long id;

	/** 甲方名称 */
	@ApiModelProperty("甲方名称")
	private String nailName;
	/** 甲方名称 */
	@ApiModelProperty("甲方名称")
	private Long nailId;
	/** 乙方名称 */
	@ApiModelProperty("乙方名称")
	private String bname;
	/** 乙方名称 */
	@ApiModelProperty("乙方名称")
	private Long bnameId;
	/** 项目id */
	@ApiModelProperty("项目id")
	private Long projId;

	/** 合同内容 */
	private String content;

	/** 结算金额 */
	private BigDecimal closeAmount;

	/** 合同凭证:扫描图片地址 */
	private String voucher;
	/** 合同凭证名称 */
	@ApiModelProperty("合同凭证名称")
	private String voucherName;

	/** 结算账户 */
	private String account;

	/** 开户银行 */
	private String openBank;

	/** 创建时间 */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/** 修改时间 */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;

	/** 删除状态 0. 正常 1. 删除 */
	@TableLogic
	private Integer delFlag;

	/** 合同名称 */
	private String constractName;

	/** 合同编号 */
	private String constractNo;

	/** 签约日期 */
	private Date signTime;

	/** 合同大类别:0：收入合同，1：支出合同 */
	private String constractBigType;

	/** 合同小类别:投资方分类。演员合同、职员合同…… */
	private String constractSmallType;

	/** 合同上传文件时间 */
	private Date uploadTime;

	/** 联系人名称 */
	private String contactsor;

	/** 联系人电话 */
	private String contactsPhone;

	/** 联系人邮箱 */
	private String contactsEmai;

	/** 联系人其他 */
	private String contactsOthers;

	/** 用户id */
	private Long userId;

	/** 项目名称 */
	private String projName;

	@TableField(exist = false)
	/** 请求参数 */
	@Transient
	private Map<String, Object> params = new HashMap<>();
	/** 审核状态 0：未审核；1：审核（默认） */
	private Boolean auditStatus;

}
